home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / app / PreferencesDialog.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  9.9 KB  |  341 lines

  1. package com.extensibility.app;
  2.  
  3. import com.extensibility.rock.RDialog;
  4. import com.extensibility.rock.RSeparator;
  5. import com.extensibility.rock.Screen;
  6. import java.awt.Component;
  7. import java.awt.Container;
  8. import java.awt.Dialog;
  9. import java.awt.Font;
  10. import java.awt.Frame;
  11. import java.awt.GridBagConstraints;
  12. import java.awt.GridBagLayout;
  13. import java.awt.Window;
  14. import java.io.File;
  15. import java.io.IOException;
  16. import java.util.Vector;
  17. import javax.swing.BorderFactory;
  18. import javax.swing.Box;
  19. import javax.swing.JButton;
  20. import javax.swing.JCheckBox;
  21. import javax.swing.JComboBox;
  22. import javax.swing.JComponent;
  23. import javax.swing.JDialog;
  24. import javax.swing.JFrame;
  25. import javax.swing.JLabel;
  26. import javax.swing.JPanel;
  27. import javax.swing.JTabbedPane;
  28. import javax.swing.JTextField;
  29. import javax.swing.border.EmptyBorder;
  30.  
  31. public class PreferencesDialog extends RDialog {
  32.    Frame parent;
  33.    JLabel lblShowWelcome;
  34.    JLabel lblDebuging;
  35.    JLabel debugDescription;
  36.    JLabel lblDocFont;
  37.    JLabel lblSrcFont;
  38.    JLabel lblFontRestart;
  39.    JButton btnBrowseBrowser;
  40.    JButton btnAccept;
  41.    JButton btnCancel;
  42.    JCheckBox cbShowWelcome;
  43.    JCheckBox cbOnlineHelp;
  44.    JCheckBox cbExternalHelpBrowser;
  45.    JCheckBox cbDebug;
  46.    JComboBox cmbDocFontSize;
  47.    JComboBox cmbDocFontName;
  48.    JComboBox cmbSrcFontSize;
  49.    JComboBox cmbSrcFontName;
  50.    JTextField tfOtherBrowser;
  51.    JTextField tfOpenFromBase;
  52.    JTextField tfSaveToBase;
  53.    JTextField tfSchemaPath;
  54.    JPanel pnlBrowser;
  55.    JPanel pnlOpenFromBase;
  56.    JPanel pnlSaveToBase;
  57.    JPanel pnlMisc;
  58.    ApplicationPreferences preferences;
  59.  
  60.    public PreferencesDialog(JFrame var1, ApplicationPreferences var2) {
  61.       super(var1, true);
  62.       this.parent = var1;
  63.       this.preferences = var2;
  64.       this.prepare();
  65.    }
  66.  
  67.    protected ApplicationPreferences getPreferences() {
  68.       return this.preferences;
  69.    }
  70.  
  71.    public void addNotify() {
  72.       super.addNotify();
  73.    }
  74.  
  75.    protected boolean doOK() {
  76.       this.preferences.updateOnlineHelp(this.cbOnlineHelp.isSelected());
  77.       this.preferences.updateExternalHelpBrowser(this.cbExternalHelpBrowser.isSelected());
  78.       this.preferences.updateShowWelcome(this.cbShowWelcome.isSelected());
  79.       if (this.tfOtherBrowser.getText().length() == 0) {
  80.          this.preferences.updateBrowserPath((String)null);
  81.       } else {
  82.          this.preferences.updateBrowserPath(this.tfOtherBrowser.getText());
  83.       }
  84.  
  85.       this.preferences.updateOpenFromBase(this.tfOpenFromBase.getText());
  86.       this.preferences.updateSaveToBase(this.tfSaveToBase.getText());
  87.       this.preferences.updateSchemaPath(this.tfSchemaPath.getText());
  88.       String var1 = (String)this.cmbDocFontSize.getSelectedItem();
  89.       String var2 = (String)this.cmbDocFontName.getSelectedItem();
  90.       int var3 = var1.equals(UI.getString("dialog.preferences.font.default")) ? -1 : Integer.parseInt(var1);
  91.       String var4 = var1.equals(UI.getString("dialog.preferences.font.default")) ? null : var2;
  92.       this.preferences.updateDocFont(var4, var3);
  93.       var1 = (String)this.cmbSrcFontSize.getSelectedItem();
  94.       var2 = (String)this.cmbSrcFontName.getSelectedItem();
  95.       var3 = var1.equals(UI.getString("dialog.preferences.font.default")) ? -1 : Integer.parseInt(var1);
  96.       var4 = var1.equals(UI.getString("dialog.preferences.font.default")) ? null : var2;
  97.       this.preferences.updateSrcFont(var4, var3);
  98.       if (this.cbDebug.isSelected()) {
  99.          this.preferences.updateDebugLevel(2);
  100.       } else {
  101.          this.preferences.updateDebugLevel(0);
  102.       }
  103.  
  104.       return true;
  105.    }
  106.  
  107.    protected void save() {
  108.       try {
  109.          this.preferences.save();
  110.       } catch (IOException var2) {
  111.          DialogFactory.showException(this, 99, var2);
  112.       }
  113.  
  114.    }
  115.  
  116.    private void prepare() {
  117.       JTabbedPane var1 = new JTabbedPane();
  118.       ((JComponent)var1).setBorder(new EmptyBorder(8, 8, 8, 8));
  119.       this.addTabs(var1);
  120.       this.btnAccept = new JButton(UI.getString("dialog.ok"));
  121.       this.btnAccept.addActionListener(new 1(this));
  122.       this.btnCancel = new JButton(UI.getString("dialog.cancel"));
  123.       this.btnCancel.addActionListener(new 2(this));
  124.       JPanel var2 = new JPanel();
  125.       ((Container)var2).add(this.btnAccept);
  126.       ((Container)var2).add(this.btnCancel);
  127.       ((JDialog)this).getContentPane().add(var1, "Center");
  128.       ((JDialog)this).getContentPane().add(var2, "South");
  129.       ((JDialog)this).setDefaultCloseOperation(1);
  130.       ((Dialog)this).setTitle(UI.getString("dialog.preferences.title"));
  131.       ((Window)this).pack();
  132.       Screen.centerInScreen(this);
  133.    }
  134.  
  135.    protected void addTabs(JTabbedPane var1) {
  136.       var1.add(this.prepareTab(this.getViewOptions()), UI.getString("dialog.preferences.tab.view"));
  137.       var1.add(this.prepareTab(this.getGeneralOptions()), UI.getString("dialog.preferences.tab.general"));
  138.       var1.add(this.prepareTab(this.getPathsOptions()), UI.getString("dialog.preferences.tab.paths"));
  139.    }
  140.  
  141.    protected Vector getViewOptions() {
  142.       Vector var1 = new Vector();
  143.       var1.addElement("dialog.preferences.box.font");
  144.       this.lblDocFont = new JLabel(UI.getString("dialog.preferences.label.doc.fontsize.description"));
  145.       String[] var2 = new String[]{UI.getString("dialog.preferences.font.default"), "9", "10", "11", "12", "14", "16", "18"};
  146.       this.cmbDocFontSize = new JComboBox(var2);
  147.       this.cmbDocFontName = new JComboBox(((Window)this).getToolkit().getFontList());
  148.       this.cmbDocFontName.insertItemAt("Default", 0);
  149.       Font var3 = this.preferences.getDocFont();
  150.       if (var3 != null) {
  151.          this.cmbDocFontSize.setSelectedItem(Integer.toString(var3.getSize()));
  152.          this.cmbDocFontName.setSelectedItem(var3.getName());
  153.       } else {
  154.          this.cmbDocFontSize.setSelectedItem(UI.getString("dialog.preferences.font.default"));
  155.          this.cmbDocFontName.setSelectedItem(UI.getString("dialog.preferences.font.default"));
  156.       }
  157.  
  158.       Box var4 = Box.createHorizontalBox();
  159.       ((Container)var4).add(this.lblDocFont);
  160.       ((Container)var4).add(Box.createHorizontalStrut(5));
  161.       ((Container)var4).add(this.cmbDocFontName);
  162.       ((Container)var4).add(Box.createHorizontalStrut(3));
  163.       ((Container)var4).add(this.cmbDocFontSize);
  164.       this.lblSrcFont = new JLabel(UI.getString("dialog.preferences.label.src.fontsize.description"));
  165.       var2 = new String[]{UI.getString("dialog.preferences.font.default"), "9", "10", "11", "12", "14", "16", "18"};
  166.       this.cmbSrcFontSize = new JComboBox(var2);
  167.       this.cmbSrcFontName = new JComboBox(((Window)this).getToolkit().getFontList());
  168.       this.cmbSrcFontName.insertItemAt("Default", 0);
  169.       Font var5 = this.preferences.getSrcFont();
  170.       if (var5 != null) {
  171.          this.cmbSrcFontSize.setSelectedItem(Integer.toString(var5.getSize()));
  172.          this.cmbSrcFontName.setSelectedItem(var5.getName());
  173.       } else {
  174.          this.cmbSrcFontSize.setSelectedItem(UI.getString("dialog.preferences.font.default"));
  175.          this.cmbSrcFontName.setSelectedItem(UI.getString("dialog.preferences.font.default"));
  176.       }
  177.  
  178.       this.lblFontRestart = new JLabel(UI.getString("dialog.preferences.label.fontsize.requires"));
  179.       this.lblFontRestart.setFont(new Font("Dialog", 0, 10));
  180.       this.lblFontRestart.setAlignmentX(1.0F);
  181.       Box var6 = Box.createHorizontalBox();
  182.       ((Container)var6).add(this.lblSrcFont);
  183.       ((Container)var6).add(Box.createHorizontalStrut(5));
  184.       ((Container)var6).add(this.cmbSrcFontName);
  185.       ((Container)var6).add(Box.createHorizontalStrut(3));
  186.       ((Container)var6).add(this.cmbSrcFontSize);
  187.       Box var7 = Box.createVerticalBox();
  188.       ((Container)var7).add(var4);
  189.       ((Container)var7).add(Box.createVerticalStrut(12));
  190.       ((Container)var7).add(var6);
  191.       ((Container)var7).add(this.lblFontRestart);
  192.       var1.addElement(var7);
  193.       return var1;
  194.    }
  195.  
  196.    protected Vector getPathsOptions() {
  197.       Vector var1 = new Vector();
  198.       var1.addElement("dialog.preferences.panel.browser.title");
  199.       String var2 = this.preferences.getBrowserPath();
  200.       if (var2 == null) {
  201.          var2 = UI.getString("dialog.preferences.otherbrowser.path");
  202.          if (!(new File(var2)).exists()) {
  203.             var2 = "";
  204.          }
  205.       }
  206.  
  207.       this.tfOtherBrowser = new JTextField(var2, 25);
  208.       this.btnBrowseBrowser = new JButton(UI.getString("dialog.preferences.expand"));
  209.       this.btnBrowseBrowser.setFont(new Font("SansSerif", 0, 9));
  210.       this.btnBrowseBrowser.addActionListener(new 3(this));
  211.       Box var3 = Box.createHorizontalBox();
  212.       ((Container)var3).add(this.tfOtherBrowser);
  213.       ((Container)var3).add(Box.createHorizontalStrut(3));
  214.       ((Container)var3).add(this.btnBrowseBrowser);
  215.       var1.addElement(var3);
  216.       var1.addElement("dialog.preferences.panel.openfrombase");
  217.       String var4 = this.preferences.getOpenFromBase();
  218.       if (var4 == null) {
  219.          var4 = "";
  220.       }
  221.  
  222.       this.tfOpenFromBase = new JTextField(var4, 30);
  223.       var1.addElement(this.tfOpenFromBase);
  224.       var1.addElement("dialog.preferences.panel.savetobase");
  225.       String var5 = this.preferences.getSaveToBase();
  226.       if (var5 == null) {
  227.          var5 = "";
  228.       }
  229.  
  230.       this.tfSaveToBase = new JTextField(var5, 30);
  231.       var1.addElement(this.tfSaveToBase);
  232.       var1.addElement("dialog.preferences.panel.schemapath");
  233.       String var6 = this.preferences.getSchemaPath();
  234.       if (var6 == null) {
  235.          var6 = "";
  236.       }
  237.  
  238.       this.tfSchemaPath = new JTextField(var6, 30);
  239.       var1.addElement(this.tfSchemaPath);
  240.       return var1;
  241.    }
  242.  
  243.    protected Vector getGeneralOptions() {
  244.       Vector var1 = new Vector();
  245.       var1.addElement("dialog.preferences.box.help");
  246.       this.cbOnlineHelp = new JCheckBox(UI.getString("dialog.preferences.cb.onlinehelp"));
  247.       this.cbOnlineHelp.setSelected(this.preferences.getOnlineHelp());
  248.       var1.addElement(this.cbOnlineHelp);
  249.       this.cbExternalHelpBrowser = new JCheckBox(UI.getString("dialog.preferences.cb.external.help.browser"));
  250.       this.cbExternalHelpBrowser.setSelected(this.preferences.getExternalHelpBrowser());
  251.       Box var2 = Box.createVerticalBox();
  252.       ((Container)var2).add(this.cbExternalHelpBrowser);
  253.       JLabel var3 = new JLabel(UI.getString("dialog.preferences.cb.external.help.browser.warning"));
  254.       ((JComponent)var3).setFont(new Font("Dialog", 0, 10));
  255.       ((Container)var2).add(var3);
  256.       var1.addElement(var2);
  257.       var1.addElement("dialog.preferences.box.startup");
  258.       this.cbShowWelcome = new JCheckBox(UI.getString("dialog.preferences.cb.showwelcome"));
  259.       this.cbShowWelcome.setSelected(this.preferences.getShowWelcome());
  260.       var1.addElement(this.cbShowWelcome);
  261.       var1.addElement("dialog.preferences.box.support");
  262.       this.cbDebug = new JCheckBox(UI.getString("dialog.preferences.cb.debuging"));
  263.       if (this.preferences.getDebugLevel() > 0) {
  264.          this.cbDebug.setSelected(true);
  265.       }
  266.  
  267.       this.debugDescription = new JLabel(UI.getString("dialog.preferences.label.debuging.description"));
  268.       this.debugDescription.setFont(new Font("Dialog", 0, 10));
  269.       Box var4 = Box.createVerticalBox();
  270.       ((Container)var4).add(this.cbDebug);
  271.       ((Container)var4).add(this.debugDescription);
  272.       var1.addElement(var4);
  273.       return var1;
  274.    }
  275.  
  276.    protected JComponent prepareTab(Vector var1) {
  277.       JPanel var2 = new JPanel(new GridBagLayout());
  278.       GridBagConstraints var3 = new GridBagConstraints();
  279.       var3.gridx = 0;
  280.       var3.gridy = -1;
  281.       var3.weightx = (double)1.0F;
  282.       var3.anchor = 17;
  283.       var3.insets.left = 8;
  284.       var3.insets.right = 8;
  285.       var3.insets.bottom = 4;
  286.       GridBagConstraints var4 = new GridBagConstraints();
  287.       var4.gridx = 0;
  288.       var4.gridy = -1;
  289.       var4.weightx = (double)1.0F;
  290.       var4.anchor = 17;
  291.       var4.insets.left = 8;
  292.       var4.insets.right = 8;
  293.       var4.insets.bottom = 4;
  294.       var4.fill = 2;
  295.       boolean var5 = var1.size() >= 0 && var1.elementAt(0) instanceof String;
  296.       JPanel var6 = null;
  297.       if (var5) {
  298.          var3.insets.top = 8;
  299.          var3.fill = 2;
  300.       }
  301.  
  302.       for(int var7 = 0; var7 < var1.size(); ++var7) {
  303.          Object var8 = var1.elementAt(var7);
  304.          if (var8 instanceof String) {
  305.             if (var6 != null) {
  306.                ((Container)var2).add(var6, var3);
  307.             }
  308.  
  309.             var6 = new JPanel(new GridBagLayout());
  310.             String var9 = (String)var8;
  311.             ((JComponent)var6).setBorder(BorderFactory.createTitledBorder(UI.getString(var9)));
  312.          } else {
  313.             Component var11 = (Component)var8;
  314.             if (var6 == null) {
  315.                boolean var10 = var7 == var1.size() - 1;
  316.                ((Container)var2).add(var11, var3);
  317.                if (!var10) {
  318.                   this.addSeparator(var2, var3);
  319.                }
  320.             } else {
  321.                ((Container)var6).add(var11, var4);
  322.             }
  323.          }
  324.       }
  325.  
  326.       if (var6 != null) {
  327.          ((Container)var2).add(var6, var3);
  328.       }
  329.  
  330.       return var2;
  331.    }
  332.  
  333.    protected void addSeparator(JPanel var1, GridBagConstraints var2) {
  334.       var2.insets.right = 8;
  335.       var2.fill = 2;
  336.       ((Container)var1).add(new RSeparator(3), var2);
  337.       var2.insets.right = 0;
  338.       var2.fill = 0;
  339.    }
  340. }
  341.